import re
import os

f = open("D:\\BaiduNetdiskDownload\\爬虫从入门到应用\\2022_06_08直播数据解析_正则\\素材\\豆瓣.html", 'rb')
doubanStr = f.read().decode('utf-8')
# f.close()

# pipei = re.compile('<a href="https://book.douban.com/subject/\d+/">.*</a>')     # 贪婪匹配书名部分，所有符合书名格式且非换行以外的所有字符
# pipei = re.compile('<a href="https://book.douban.com/subject/\d+/">(.*)</a>')     # 贪婪（把对象当成一整个匹配，效果和search一样）匹配书名部分，所有符合书名格式且非换行以外的所有字符，但最终只保存（）部分，也就是只保存书名
pipei_bookName = re.compile('<a href="https://book.douban.com/subject/\d+/">(.*?)</a>')     # 非贪婪（一个一个匹配整个对象，对象中所有同样部分逐个输出元素，一般用非贪婪）匹配书名部分，所有符合书名格式且非换行以外的所有字符，但最终只保存（）部分，也就是只保存书名
bookName = pipei_bookName.findall(doubanStr)
# print(bookName, type(bookName))
with open ("zhengze_html_bookName.txt", "w") as ff:
    for item in bookName:
        ff.writelines(item + '\n')
ff.close()

f.seek(0)
# <img src="https://img3.doubanio.com/mpic/s29535271.jpg"/></a>
pipei_img = re.compile('<img src="https://img\d.doubanio.com/mpic/s\w+.jpg"/>')
imgs = pipei_img.findall(doubanStr)
# print(imgs, type(imgs))
with open('img.html', 'w') as fff:
    fff.writelines(imgs)
fff.close()

f.seek(0)

pipei_intro = re.compile('<p class="detail">(.*?)</p>', re.S)
intros = pipei_intro.findall(doubanStr)
# print(intros, type(intros))
ffff = open('zhengze_html_bookIntro.txt', 'w', encoding='utf-8')
ffff.writelines(intros)
ffff.close()
pipei_intro1 = re.compile('<p>(.*?)</p>', re.S)
intros1 = pipei_intro1.findall(doubanStr)
# print(intros1, type(intros1))
fffff = open('zhengze_html_bookIntro.txt', 'a', encoding='utf-8')
for item in intros1:
    enterLst = re.findall('\r\n', item)
    num = len(enterLst)
    if num <= 2:
        fffff.writelines(item)
fffff.close()

f.close()
